Package-level declarations
Types
Feeds the error back to the LLM with a fuzzy-match suggestion, allowing it to self-correct. Uses a two-tier matching strategy for performance. Throws ToolNotFoundException after maxRetries consecutive failures.
Chains multiple injection strategies into a pipeline.
Action returned by EmptyResponsePolicy.handle.
Determines how the tool loop responds when the LLM returns a blank text response with no tool calls. This is a known failure mode of weak open-weights models (gpt-oss-20b, qwen, etc.) after a tool call when they don't know how to proceed — see EmptyLlmResponseException.
Preserve the current behaviour: exit the loop with empty content and let the rendering layer surface the typed EmptyLlmResponseException. This is the default to keep the upgrade backwards-compatible.
Throws ToolNotFoundException immediately on first unknown tool call.
Framework-agnostic request for a single LLM inference call.
Framework-agnostic result of a single LLM inference call. Represents the assistant's response which may include tool calls.
Framework-agnostic interface for making a single LLM inference call.
Thrown when the tool loop exceeds the maximum number of iterations.
Native structured-output payload for a single call.
Optional extension interface for senders that can consume request-level metadata.
Thrown when a required tool group is unavailable or missing expected tools at resolution time. This is distinct from ToolNotFoundException, which is thrown during tool loop execution when the LLM requests an unavailable tool.
Re-prompt the LLM with message up to maxRetries times before giving up. After exhaustion returns EmptyResponseAction.Throw so the caller sees the typed exception rather than blank content.
Provider-neutral request for native structured output.
Result of a tool call execution.
Context provided to injection strategies for decision-making.
Result of tool injection evaluation.
Strategy for dynamically injecting tools during a conversation.
Factory for creating ToolLoop instances.
Result of executing an Embabel tool loop.
Action returned by ToolNotFoundPolicy.handle.
Thrown when the LLM requests a tool that is not available.
Determines how the tool loop responds when the LLM calls a tool that does not exist in the available set.
Injection strategy that handles UnfoldingTool invocations.